package com.example.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;

/*
 * 本文件演示了两种配置DashScope API密钥的方式：
 * 
 * 1. 使用Spring的@Value注解方式：
 *    - @Value注解用于将配置文件中的值注入到Spring Bean的字段中
 *    - 通过${spring.ai.dashscope.api-key}表达式从配置文件(如application.properties)中读取API密钥
 *    - 这是Spring框架提供的标准配置注入方式
 * 
 * 2. 使用System.getenv()方式：
 *    - System.getenv()是Java标准库方法，用于获取系统环境变量
 *    - 从操作系统环境中获取名为"aliQwen-api"的环境变量值
 *    - 这种方式更安全，因为敏感信息不会暴露在配置文件中
 * 
 * 两种方式对比：
 * - @Value方式：配置简单，但API密钥可能暴露在配置文件中
 * - System.getenv()方式：安全性更高，API密钥存储在系统环境变量中
 */
@Configuration
public class SaaLLMConfig {
    //方式1
    //    @Value("${spring.ai.dashscope.api-key}")
    //    private String apiKey;
    //    @Bean
    //    public DashScopeApi dashScopeApi() {
    //        return DashScopeApi.builder().apiKey(apiKey).build();
    //    }

    //方式2
    @Bean
    public DashScopeApi dashScopeApi(){
        return DashScopeApi.builder()
                .apiKey(System.getenv("aliQwen-api"))
                .build();
    }

}
